const debounceTimers = {}; // 存储定时器
/**
 * 防抖函数（Debounce）
 * @param {Function} callback - 需要执行的回调函数
 * @param {number} delay - 延迟时间（单位：毫秒，默认 500ms）
 * @param {boolean} immediate - 是否立即执行（默认 true）
 * @param {string} timerId - 定时器的唯一标识（默认 'default'）
 */
function debounce(callback, delay = 500, immediate = true, timerId = "default") {
	if (typeof callback !== "function") {
	  console.error("debounce 需要传入一个函数作为回调");
	  return;
	}
  
	if (debounceTimers[timerId]) {
	  clearTimeout(debounceTimers[timerId]);
	}
  
	if (immediate) {
	  const shouldCallNow = !debounceTimers[timerId];
	  debounceTimers[timerId] = setTimeout(() => {
		debounceTimers[timerId] = null;
	  }, delay);
  
	  if (shouldCallNow) {
		callback();
	  }
	} else {
	  debounceTimers[timerId] = setTimeout(callback, delay);
	}
  }
export default debounce
